local 创建副本 = 多开数据[多开数据.当前].__UI界面.窗口层:创建我的窗口("创建副本",0,0,726,485)
local 当前 = 多开数据.当前
local 副本数据显示 = {}
local fb = {
	{"乌鸡国",
		"#L/找长安国子监吴举人进入副本",
		"低",
		10,
		5,
		"≥50级",
		0
	},
	{"车迟斗法",
		"#L/找长寿村慧觉和尚进入副本",
		"低",
		10,
		5,
		"≥50级",
		0
	},
	{"水陆大会",
		"#L/找化生寺疥癞和尚进入副本",
		"中",
		10,
		5,
		"≥50级",
		0
	},
	{"七绝山",
		"#L/找大唐境外的牛将军进入副本",
		"中",
		10,
		5,
		"≥50级",
		0
	},
	{"红孩儿",
		"#L/找麒麟山红孩儿进入副本",
		"中",
		10,
		5,
		"≥50级",
		0
	},
	{"泾河龙王",
		"#L/找长安城皇宫魏征进入副本",
		"中",
		10,
		5,
		"≥50级",
		0
	},

	{"通天河",
		"#L/找长寿村的蝴蝶女进入副本",
		"高",
		10,
		5,
		"≥50级",
		0
	},
	{"黑风山",
		"#L/找大唐国境小二进入副本",
		"高",
		10,
		5,
		"≥50级",
		0
	},
	{"大闹天宫",
		"#L/找长寿村太白金星进入副本",
		"高",
		10,
		5,
		"≥50级",
		0
	},
	{"秘境降妖",
		"#L/找长安城皇宫门口右统领进入副本",
		"高",
		10,
		5,
		"≥50级",
		0
	},
	{"齐天大圣",
		"#L/找傲来国红毛猿进入副本",
		"高",
		10,
		5,
		"≥50级",
		0
	},
	{"无底洞",
		"#L/找西凉女国慕容婆婆进入副本",
		"高",
		10,
		5,
		"≥50级",
		0
	},
	{"天火之殇上",
		"#L/找傲来左下角民居16.126里面文老伯进入副本",
		"高",
		10,
		5,
		"≥50级",
		0
	},

	{"如梦奇谭之一斛珠",
		"#L/找建邺城梨园小贩进入副本\n#L/消耗副本积分：150",
		"高",
		10,
		5,
		"≥50级",
		0
	},
	{"如梦奇谭之双城记",
		"#L/找建邺城梨园小贩进入副本\n#L/消耗副本积分：150",
		"高",
		10,
		5,
		"≥50级",
		0
	},
	{"如梦奇谭之五更寒",
		"#L/找建邺城梨园小贩进入副本\n#L/消耗副本积分：200",
		"高",
		10,
		5,
		"≥50级",
		0
	},
}
function 创建副本:初始化()
    __置窗口坐标(self,'中')
    local nsf = require('SDL.图像')(726,485)
    if nsf:渲染开始() then
        置窗口背景("创建副本",0,12,718,470,true):显示(0,0)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

function 创建副本:打开(data)
    self:置可见(true)
    self.数据=data
    self.类型=1
    self.副本查找:置选中(true)
    
    self:重置()
end

function 创建副本:刷新团队数据(数据)
	self.类型 = 3
    self.管理副本.逐出:置禁止(true)
    self.管理副本.批准:置禁止(true)
    self.管理副本.拒绝:置禁止(true)
	self.团队数据 = 数据 or {}
    if self.管理副本.模型格子 == nil then self.管理副本.模型格子 = __UI模型格子.创建(当前) end
    self.管理副本.模型格子:清空()
    self:重置()
end

function 创建副本:重置()
    if self.类型==1 then
        self.查找副本:置可见(true)
        self.查找副本:重置()
        self.查找副本.查找副本列表:重置()
        self.新建副本:置可见(false)
        self.管理副本:置可见(false)
    elseif self.类型==2 then
        self.新建副本:置可见(true)
        self.新建副本:重置()
        self.新建副本.新建副本列表:重置()
        self.查找副本:置可见(false)
        self.管理副本:置可见(false)
    elseif self.类型==3 then
        self.管理副本:置可见(true, not self.管理副本.是否实例)
        self.管理副本:重置()
        self.管理副本.队员列表:重置()
        self.管理副本.申请列表:重置()
        self.查找副本:置可见(false)
        self.新建副本:置可见(false)
    end
end

local 管理副本 = 创建副本:创建我的控件('管理副本',0,0,726,485)

function 管理副本:重置(类型)
    self.模型格子:清空()
    local nsf = require('SDL.图像')(726,485)
    if nsf:渲染开始() then
        取白色背景(0,0,385,170,true):显示(15,90)

        取白色背景(0,0,190,170,true):显示(15,270)
        取白色背景(0,0,190,170,true):显示(210,270)
        字体18:置颜色(__取颜色('黑色'))

        字体18:取图像("等级"):显示(200,110)
        字体18:取图像("门派"):显示(200,110+28)
        字体18:取图像("状态"):显示(200,110+28*2)
        字体18:取图像("I D"):显示(200,110+28*3)
        字体18:取图像("帮派"):显示(200,110+28*4)

        字体18:置颜色(__取颜色('红色'))
        字体18:取图像("团队成员"):显示(70,275)
        字体18:取图像("申请列表"):显示(265,275)


        字体18:置颜色(__取颜色('白色'))
        字体18:取图像("团队名称"):显示(410,100)
        local lssc = 取输入背景(0, 0, 200, 23)
        lssc:显示(487, 98)
        字体18:取图像("团长门派"):显示(410,100+28)
        lssc:显示(487, 98+28)
        字体18:取图像("团长I D"):显示(410,100+28*2)
        lssc:显示(487, 98+28*2)

        local lssc1 = 取输入背景(0, 0, 60, 23)
        字体18:取图像("等级限制"):显示(410,100+28*3)
        lssc1:显示(487, 98+28*3)
        字体18:取图像("最低人数"):显示(550,100+28*3)
        lssc1:显示(627, 98+28*3)

        字体18:取图像("副本难度"):显示(410,100+28*4)
        lssc:显示(487, 98+28*4)
        字体18:取图像("开始时间"):显示(410,100+28*5)
        lssc:显示(487, 98+28*5)
        字体18:取图像("进行时间"):显示(410,100+28*6)
        lssc:显示(487, 98+28*6)
        字体18:取图像("当前环数"):显示(410,100+28*7)
        lssc1:显示(487, 98+28*7)
        字体18:取图像("失败次数"):显示(550,100+28*7)
        lssc1:显示(627, 98+28*7)

        取白色背景(0,0,280,90,true):显示(410,100+28*8)

        if 创建副本.团队数据 and 创建副本.团队数据.团队名称 then
            字体18:置颜色(__取颜色('黑色'))
            字体18:取图像(创建副本.团队数据.团队名称):显示(490, 100)
            字体18:取图像(创建副本.团队数据.团长门派):显示(490, 100+28)
            字体18:取图像(创建副本.团队数据.团长id):显示(490, 100+28*2)
            for i = 1, #fb do
			    if 创建副本.团队数据.副本名称 == fb[i][1] then
			    	字体18:取图像(fb[i][6]):显示(490,100+28*3)
			    	字体18:取图像(fb[i][3]):显示(490,100+28*4)
                    break
                end
            end
            字体18:取图像("无"):显示(490,100+28*5)
            字体18:取图像("无"):显示(490,100+28*6)
            字体18:取图像("0"):显示(490,100+28*7)
            字体18:取图像("0"):显示(635,100+28*7)
            字体18:取图像(5):显示(635, 100+28*3)
            if 类型==1 and 创建副本.团队数据.团队人员[创建副本.选中队员] then
                字体18:置颜色(__取颜色('黑色'))
                字体18:取图像(创建副本.团队数据.团队人员[创建副本.选中队员].等级):显示(250,110)
                字体18:取图像(创建副本.团队数据.团队人员[创建副本.选中队员].门派):显示(250,110+28)
                字体18:取图像(创建副本.团队数据.团队人员[创建副本.选中队员].状态):显示(250,110+28*2)
                字体18:取图像(创建副本.团队数据.团队人员[创建副本.选中队员].ID):显示(250,110+28*3)
                字体18:取图像(创建副本.团队数据.团队人员[创建副本.选中队员].帮派):显示(250,110+28*4)
                self.模型格子:置数据(创建副本.团队数据.团队人员[创建副本.选中队员], "角色", 100, 200)
            elseif 类型==2 and 创建副本.团队数据.申请人员[创建副本.选中申请] then
                字体18:置颜色(__取颜色('黑色'))
                字体18:取图像(创建副本.团队数据.申请人员[创建副本.选中申请].等级):显示(250,110)
                字体18:取图像(创建副本.团队数据.申请人员[创建副本.选中申请].门派):显示(250,110+28)
                字体18:取图像(创建副本.团队数据.申请人员[创建副本.选中申请].状态):显示(250,110+28*2)
                字体18:取图像(创建副本.团队数据.申请人员[创建副本.选中申请].ID):显示(250,110+28*3)
                字体18:取图像(创建副本.团队数据.申请人员[创建副本.选中申请].帮派):显示(250,110+28*4)
                self.模型格子:置数据(创建副本.团队数据.申请人员[创建副本.选中申请], "角色", 100, 200)
            end
        end
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

local 队员列表 = 管理副本:创建列表("队员列表",20,295,175,135)
function 队员列表:初始化()
    self:置文字(字体16)
    self.行高度 = 30
    self.行间距 = 0
end

function 队员列表:重置()
    创建副本.选中队员 = nil
    self:清空()
    for _, v in ipairs(创建副本.团队数据.团队人员 or {}) do
        local nsf = require('SDL.图像')(175,135)
        if nsf:渲染开始() then
            字体16:置颜色(__取颜色('黑色'))
            字体16:取图像(v.名称):显示(50,5)
            nsf:渲染结束()
        end
        local r = self:添加()
        r:置精灵(nsf:到精灵())
    end
end

function 队员列表:左键弹起(x, y, i, item, msg)
    创建副本.选中队员 = i
    创建副本.管理副本.逐出:置禁止(false)
    创建副本.管理副本:重置(1)
end

local 逐出 = 管理副本:创建我的按钮(__res:getPNGCC(1,401,65,175,43,true):拉伸(80,33),"逐出",50,445,"逐出")
function 逐出:左键弹起(x,y,msg)
    if 创建副本.选中队员 then
        发送数据(当前,213,{逐出id=创建副本.团队数据.团队人员[创建副本.选中队员].ID})
    else
        多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请选择你要逐出的队员！")
    end
end


local 申请列表 = 管理副本:创建列表("申请列表",215,295,175,135)
function 申请列表:初始化()
    self:置文字(字体16)
    self.行高度 = 30
    self.行间距 = 0
end

function 申请列表:重置()
    创建副本.选中申请 = nil
    self:清空()
    for _, v in ipairs(创建副本.团队数据.申请人员 or {}) do
        local nsf = require('SDL.图像')(175,135)
        if nsf:渲染开始() then
            字体16:置颜色(__取颜色('黑色'))
            字体16:取图像(v.名称):显示(50,5)
            nsf:渲染结束()
        end
        local r = self:添加()
        r:置精灵(nsf:到精灵())
    end
end

function 申请列表:左键弹起(x, y, i, item, msg)
    创建副本.选中申请 = i
    创建副本.管理副本.批准:置禁止(false)
    创建副本.管理副本.拒绝:置禁止(false)
    创建副本.管理副本:重置(2)
end

local 批准 = 管理副本:创建我的按钮(__res:getPNGCC(1,401,65,175,43,true):拉伸(65,33),"批准",230,445,"批准")
function 批准:左键弹起(x,y,msg)
    if 创建副本.选中申请 then
        发送数据(当前,214,{对方id=创建副本.团队数据.申请人员[创建副本.选中申请].ID,操作类型="接受"})
    else
        多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请选择你要操作的目标！")
    end
end

local 拒绝 = 管理副本:创建我的按钮(__res:getPNGCC(1,401,65,175,43,true):拉伸(65,33),"拒绝",310,445,"拒绝")
function 拒绝:左键弹起(x,y,msg)
    if 创建副本.选中申请 then
        发送数据(当前,214,{对方id=创建副本.团队数据.申请人员[创建副本.选中申请].ID,操作类型="拒绝"})
    else
        多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请选择你要操作的目标！")
    end
end





local 新建副本 = 创建副本:创建我的控件('新建副本',0,0,726,485)

function 新建副本:重置()
    local nsf = require('SDL.图像')(726,485)
    if nsf:渲染开始() then
        取白色背景(0,0,200,348,true):显示(15,120)
        取白色背景(0,0,480,140,true):显示(230,120)
        字体18:置颜色(__取颜色('白色'))
        字体18:取图像("副本详情"):显示(230,100)
        字体18:取图像("选择副本"):显示(30,100)

        local lssc = 取输入背景(0, 0, 138, 23)
        字体18:取图像("副本难度"):显示(230,270)
        lssc:显示(310,268)
        lssc:显示(310,268+28)
        lssc:显示(310,268+28*2)
        lssc:显示(310,268+28*3)
        lssc:显示(310,268+28*4)
        lssc:显示(310,268+28*5)
        字体18:取图像("总 环 数"):显示(230,270+28)
        字体18:取图像("人数要求"):显示(230,270+28*2)
        字体18:取图像("等级要求"):显示(230,270+28*3)
        字体18:取图像("所需金额"):显示(230,270+28*4)
        字体18:取图像("任务时间"):显示(230,270+28*5)

        字体18:取图像("团队名称"):显示(460,270)
        字体18:取图像("开团时间"):显示(460,270+28)
        字体18:取图像("团队宗旨"):显示(460,270+28*2)
        lssc:显示(540,268)
        lssc:显示(540,268+28)
        lssc:显示(540,268+28*2)
        取白色背景(0,0,240,90,true):显示(460,270+28*3)
        if 创建副本.选中 and fb[创建副本.选中] then
            字体18:置颜色(__取颜色('黑色'))
            字体18:取图像(fb[创建副本.选中][3]):显示(320,270)
            字体18:取图像(fb[创建副本.选中][4]):显示(320,270+28)
            字体18:取图像(fb[创建副本.选中][5]):显示(320,270+28*2)
            字体18:取图像(fb[创建副本.选中][6]):显示(320,270+28*3)
            字体18:取图像(fb[创建副本.选中][7]):显示(320,270+28*4)
            字体18:取图像("无"):显示(320,270+28*5)


            -- 字体18:取图像('无'):显示(550,270)
            字体18:取图像('无'):显示(550,270+28)
            字体18:取图像('无'):显示(550,270+28*2)
            self.公告文本:置文本(fb[创建副本.选中][2])
            创建副本.新建副本.副本名称输入:置文本(多开数据[当前].角色信息.名称)
        end
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end


新建副本:创建我的文本("公告文本",240,130,465,125,true)


local 副本名称输入 = 新建副本:创建输入("副本名称输入",550,270,120,18)
function 副本名称输入:初始化()
    self:取光标精灵()
    self:置颜色(__取颜色('黑色'))
end

local 新建副本列表 = 新建副本:创建列表("新建副本列表",20,130,180,330)
function 新建副本列表:初始化()
    self:置文字(字体16)
    self.行高度 = 30
    self.行间距 = 0
end

function 新建副本列表:重置()
    创建副本.选中 = nil
    self:清空()
    for _, v in ipairs(fb) do
        local nsf = require('SDL.图像')(355,320)
        if nsf:渲染开始() then
            字体16:置颜色(__取颜色('黑色'))
            字体16:取图像(v[1]):显示(30,5)
            nsf:渲染结束()
        end
        local r = self:添加()
        r:置精灵(nsf:到精灵())
    end
end

function 新建副本列表:左键弹起(x, y, i, item, msg)
    创建副本.选中 = i
    创建副本.新建副本:重置()
end

local 开启副本 = 新建副本:创建我的按钮(__res:getPNGCC(1,401,65,175,43,true):拉伸(124,33),"开启副本",550,445,"创建副本")
function 开启副本:左键弹起(x,y,msg)
    if 创建副本.选中 then
        if string.len(创建副本.新建副本.副本名称输入:取文本()) > 0 then
            发送数据(当前,210,{副本名称=fb[创建副本.选中][1],团队名称=创建副本.新建副本.副本名称输入:取文本(),数字id=多开数据[当前].角色信息.id})
        else
            多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请输入团队的名称！")
        end
    else
        多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请选择你要加入的副本！")
    end
end







local 查找副本 = 创建副本:创建我的控件('查找副本',0,0,726,485)
local function 副本数据处理(数据)
	副本数据显示 = {}
	for k,v in pairs(数据) do
		for _,m in pairs(v) do
			for __,n in pairs(m) do
				if __ then
					local 添加数据 = 数据[k][_][__]
					table.insert(副本数据显示,添加数据)
				end
			end
		end
	end
end

function 查找副本:重置()
    local nsf = require('SDL.图像')(726,485)
    if nsf:渲染开始() then
        取白色背景(0,0,385,368,true):显示(15,90)
        字体18:置颜色(__取颜色('黑色'))
        字体18:取图像("副本名称"):显示(30,100)
        
        字体18:取图像("状态"):显示(125,100)
        字体18:取图像("团长昵称"):显示(200,100)
        字体18:取图像("团长等级"):显示(300,100)

        字体18:置颜色(__取颜色('白色'))
        字体18:取图像("团队名称"):显示(410,100)
        local lssc = 取输入背景(0, 0, 200, 23)
        lssc:显示(487, 98)
        字体18:取图像("团长门派"):显示(410,100+28)
        lssc:显示(487, 98+28)
        字体18:取图像("团长I D"):显示(410,100+28*2)
        lssc:显示(487, 98+28*2)

        local lssc1 = 取输入背景(0, 0, 60, 23)
        字体18:取图像("等级限制"):显示(410,100+28*3)
        lssc1:显示(487, 98+28*3)
        字体18:取图像("最低人数"):显示(550,100+28*3)
        lssc1:显示(627, 98+28*3)

        字体18:取图像("副本难度"):显示(410,100+28*4)
        lssc:显示(487, 98+28*4)
        字体18:取图像("开始时间"):显示(410,100+28*5)
        lssc:显示(487, 98+28*5)
        字体18:取图像("进行时间"):显示(410,100+28*6)
        lssc:显示(487, 98+28*6)
        字体18:取图像("当前环数"):显示(410,100+28*7)
        lssc1:显示(487, 98+28*7)
        字体18:取图像("失败次数"):显示(550,100+28*7)
        lssc1:显示(627, 98+28*7)
        字体18:取图像("团队人数"):显示(410,100+28*8)
        lssc1:显示(487, 98+28*8)
        字体18:取图像("申请人数"):显示(550,100+28*8)
        lssc1:显示(627, 98+28*8)
        取白色背景(0,0,280,90,true):显示(410,100+28*9)
        if 创建副本.选中 and 副本数据显示[创建副本.选中] then
            字体18:置颜色(__取颜色('黑色'))
            字体18:取图像(副本数据显示[创建副本.选中].团队名称):显示(490, 100)
            字体18:取图像(副本数据显示[创建副本.选中].团长门派):显示(490, 100+28)
            字体18:取图像(副本数据显示[创建副本.选中].团长id):显示(490, 100+28*2)
            for i = 1, #fb do
			    if 副本数据显示[创建副本.选中].副本名称 == fb[i][1] then
			    	字体18:取图像(fb[i][6]):显示(490,100+28*3)
			    	字体18:取图像(fb[i][3]):显示(490,100+28*4)
                    break
                end
            end
            字体18:取图像("无"):显示(490,100+28*5)
            字体18:取图像("无"):显示(490,100+28*6)
            字体18:取图像("0"):显示(490,100+28*7)
            字体18:取图像("0"):显示(635,100+28*7)
            字体18:取图像(#副本数据显示[创建副本.选中].团队人员):显示(490,100+28*8)
            字体18:取图像(#副本数据显示[创建副本.选中].团队人员):显示(635,100+28*8)
            字体18:取图像(5):显示(635, 100+28*3)
            字体18:取图像("无"):显示(420,105+28*9)
        end
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

local 查找副本列表 = 查找副本:创建列表("查找副本列表",20,130,355,330)
function 查找副本列表:初始化()
    self:置文字(字体16)
    self.行高度 = 30
    self.行间距 = 0
end

function 查找副本列表:重置()
    副本数据处理(创建副本.数据)
    创建副本.选中 = nil
    self:清空()
    for _, v in ipairs(副本数据显示) do
        local nsf = require('SDL.图像')(355,320)
        if nsf:渲染开始() then
            字体16:置颜色(__取颜色('黑色'))
            字体16:取图像(v.副本名称):显示(20,5)
            字体16:取图像(v.状态):显示(115,5)
            字体16:取图像(v.团长名称):显示(190,5)
            字体16:取图像(v.团长等级):显示(300,5)
            nsf:渲染结束()
        end
        local r = self:添加()
        r:置精灵(nsf:到精灵())
    end
end

function 查找副本列表:左键弹起(x, y, i, item, msg)
    创建副本.选中 = i
    创建副本.查找副本:重置()
end

local 申请加入 = 查找副本:创建我的按钮(__res:getPNGCC(1,401,65,175,43,true):拉伸(124,33),"申请加入",550,445,"申请加入")
function 申请加入:左键弹起(x,y,msg)
    if 创建副本.选中 then
        发送数据(当前,212,{id=多开数据[当前].角色信息.id,团长id=副本数据显示[创建副本.选中].团长id})
    else
        多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请选择你要加入的副本！")
    end
end

local 关闭 = 创建副本:创建我的按钮(__res:getPNGCC(1,401,0,46,46),"关闭",676,0)

function 关闭:左键弹起(x,y,msg)
    创建副本:置可见(false)
end


for i, v in ipairs {
	{ name = '副本查找', x = 20 + 107 * 0, y = 50, tcp = __res:getPNGCC(3, 511, 11, 117, 43, true):拉伸(95, 33), tcp2 = __res:getPNGCC(3, 390, 12, 117, 43, true):拉伸(95, 33), font = '查找副本' },
	{ name = '副本创建', x = 20 + 107 * 1, y = 50, tcp = __res:getPNGCC(3, 511, 11, 117, 43, true):拉伸(95, 33), tcp2 = __res:getPNGCC(3, 390, 12, 117, 43, true):拉伸(95, 33), font = '创建副本' },
	{ name = '副本管理', x = 20 + 107 * 2, y = 50, tcp = __res:getPNGCC(3, 511, 11, 117, 43, true):拉伸(95, 33), tcp2 = __res:getPNGCC(3, 390, 12, 117, 43, true):拉伸(95, 33), font = '管理副本' },
} do
	local 临时函数 = 创建副本:创建我的单选按钮(v.tcp, v.tcp2, v.name, v.x, v.y, v.font)
	function 临时函数:左键弹起(x, y)
		if v.name == '副本查找' then
            创建副本.类型 = 1
            发送数据(当前,209)
        elseif v.name == '副本创建' then
            创建副本.类型 = 2
            创建副本:重置()
        elseif v.name == '副本管理' then
            发送数据(当前,211)
        end
        创建副本.选中 = nil
	end
end



